﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Elegant.Telas.Controles
{
    class LogImagem
    {
        private string language;

        public LogImagem(string language){
            this.language = language;
        }

        public LogImagem()
        {
            this.language = "pt-BR";
        }

        /// <summary>
        /// Retorna a hora do log
        /// </summary>
        /// <returns>string com a hora atual</returns>
        private string getLogTime(){
            return "" + DateTime.Now;
        }

        /// <summary>
        /// Método que retorna a mensagem na língua definida
        /// </summary>
        /// <param name="ptMessage">mensagem em idioma português</param>
        /// <param name="enMessage">mensagem em idioma inglês</param>
        /// <returns>string com a mensagem na língua definida</returns>
        private string getLanguageMessage(string ptMessage, string enMessage)
        {
            string message = "";
            if (language.Equals("pt-BR"))
            {
                message = "" + this.getLogTime() + " - " + ptMessage;
            }
            else if (language.Equals("en-CA"))
            {
                message = "" + this.getLogTime() + " - " + enMessage;
            }
            return message;

        }


        /// <summary>
        /// Retorna a mensagem de log para imagem processada
        /// </summary>
        /// <param name="imageName">nome da imagem</param>
        /// <returns>string de log de imagem processada</returns>
        public string getProcessedImageLog(string imageName){
            string ptMessage = "Imagem " + imageName + " processada com sucesso";
            string enMessage = "Image " + imageName + " successfully processed";
            return getLanguageMessage(ptMessage, enMessage);
        }

        /// <summary>
        /// Retorna a mensagem de log para imagem transferida
        /// </summary>
        /// <param name="imageName">nome da imagem</param>
        /// <returns>string de log de imagem transferida</returns>
        public string getTranferedImageLog(string imageName)
        {
            string ptMessage = "Imagem " + imageName + " transferida com sucesso";
            string enMessage = "Image " + imageName + " successfully transfered";
            return getLanguageMessage(ptMessage, enMessage);
        }

        /// <summary>
        /// Retorna a mensagem de log para imagem não transferida
        /// </summary>
        /// <param name="imageName">nome da imagem</param>
        /// <returns>string de log de imagem não transferida</returns>
        public string getNotTransferedImageLog(string imageName)
        {
            string ptMessage = "Imagem " + imageName + " não transferida";
            string enMessage = "Image " + imageName + " not transfered";
            return getLanguageMessage(ptMessage, enMessage);
        }

        /// <summary>
        /// Retorna a mensagem de log para início de processamento
        /// </summary>
        /// <param name="imageName">nome da imagem</param>
        /// <returns>string de log para início de processamento</returns>
        public string getStartProcessingLog(string imageName)
        {
            string ptMessage = "Início do processamento da imagem " + imageName;
            string enMessage = "Starting processing of image " + imageName;
            return getLanguageMessage(ptMessage, enMessage);
        }

        /// <summary>
        /// Retorna a mensagem de log para final de processamento
        /// </summary>
        /// <param name="imageName">nome da imagem</param>
        /// <returns>string de log para final de processamento</returns>
        public string getFinalProcessLog(string imageName)
        {
            string ptMessage = "Término do processamento da imagem " + imageName;
            string enMessage = "Processing of image " + imageName + " is finished";
            return getLanguageMessage(ptMessage, enMessage);
        }



       

    }
}
